﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EventoWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ClienteAceitarConviteEvento : System.Web.UI.Page
    {
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Evento_WS webServiceEvento = new PubClub_Evento_WS();
        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();

        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoEvento evento = new ObjetoEvento();
        ObjetoEstabelecimento estabelecimento = new ObjetoEstabelecimento();
        ObjetoCliente organizador = new ObjetoCliente();

        ObjetoRetornoEvento retornoWebServiceEventoAceitarConvite;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            int idEvento = Convert.ToInt32(Request.QueryString["EventoId"]);
            evento = webServiceEvento.GetEvento(idEvento);

            int idEstabelecimento = Convert.ToInt32(Request.QueryString["EstabelecimentoId"]);
            estabelecimento = webServiceEstabelecimento.GetEstabelecimento(idEstabelecimento);

            int idOrganizador =  Convert.ToInt32(Request.QueryString["OrganizadorId"]);
            organizador = webServiceCliente.GetCliente(idOrganizador);

            if (Request.QueryString["AceitarEventoId"]!= null)
            {
                evento = webServiceEvento.GetEvento(Convert.ToInt32(Request.QueryString["AceitarEventoId"]));
                retornoWebServiceEventoAceitarConvite = webServiceEvento.ResponderConvite(cliente.ClienteId, true, evento.Id);
                if (retornoWebServiceEventoAceitarConvite.Sucesso == true)
                {
                    Response.Redirect("HomeCliente.aspx?SucessoResponderEvento=1");
                }
                else
                {
                    LabelAviso.Text = retornoWebServiceEventoAceitarConvite.Menssagem;
                    LabelAviso.Visible = true;
                }

            }
            else
            {
                if (Request.QueryString["RecusarEventoId"] != null)
                {
                    evento = webServiceEvento.GetEvento(Convert.ToInt32(Request.QueryString["RecusarEventoId"]));
                    retornoWebServiceEventoAceitarConvite = webServiceEvento.ResponderConvite(cliente.ClienteId, false, evento.Id);
                    if (retornoWebServiceEventoAceitarConvite.Sucesso == true)
                    {
                        Response.Redirect("HomeCliente.aspx?SucessoResponderEvento=2");
                    }
                    else
                    {
                        LabelAviso.Text = retornoWebServiceEventoAceitarConvite.Menssagem;
                        LabelAviso.Visible = true;
                    }
                }
            }

            TableHeaderRow linhaCabecalhoEventos = new TableHeaderRow();

            TableHeaderCell celulaCabecalhoTituloDoEvento = new TableHeaderCell();
            Label labelCabecalhoTituloDoEvento = new Label();

            TableHeaderCell celulaCabecalhoLocalDoEvento = new TableHeaderCell();
            Label labelCabecalhoLocalDoEvento = new Label();

            TableHeaderCell celulaCabecalhoDescricaoDoEvento = new TableHeaderCell();
            Label labelCabecalhoDescricaoDoEvento = new Label();

            TableHeaderCell celulaCabecalhoDataDoEvento = new TableHeaderCell();
            Label labelCabecalhoDataDoEvento = new Label();

            TableHeaderCell celulaCabecalhoOrganizadorDoEvento = new TableHeaderCell();
            Label labelCabecalhoOrganizadorDoEvento = new Label();

            TableHeaderCell celulaCabecalhoAcao = new TableHeaderCell();
            Label labelCabecalhoAcao = new Label();


            labelCabecalhoTituloDoEvento.Text = "Nome do evento";
            celulaCabecalhoTituloDoEvento.Controls.Add(labelCabecalhoTituloDoEvento);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoTituloDoEvento);

            labelCabecalhoLocalDoEvento.Text = "Local";
            celulaCabecalhoLocalDoEvento.Controls.Add(labelCabecalhoLocalDoEvento);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoLocalDoEvento);

            labelCabecalhoDescricaoDoEvento.Text = "Descrição";
            celulaCabecalhoDescricaoDoEvento.Controls.Add(labelCabecalhoDescricaoDoEvento);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoDescricaoDoEvento);

            labelCabecalhoDataDoEvento.Text = "Data";
            celulaCabecalhoDataDoEvento.Controls.Add(labelCabecalhoDataDoEvento);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoDataDoEvento);

            labelCabecalhoOrganizadorDoEvento.Text = "Organizador";
            celulaCabecalhoOrganizadorDoEvento.Controls.Add(labelCabecalhoOrganizadorDoEvento);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoOrganizadorDoEvento);

            labelCabecalhoAcao.Text = "Ação";
            celulaCabecalhoAcao.Controls.Add(labelCabecalhoAcao);
            linhaCabecalhoEventos.Cells.Add(celulaCabecalhoAcao);

            TabelaEvento.Rows.Add(linhaCabecalhoEventos);

            TableRow linhaDadosDoEvento = new TableRow();

            TableCell celulaNomeDoEvento = new TableCell();
            Label labelNomeDoEvento = new Label();

            TableCell celulaLocalDoEvento = new TableCell();
            Label labelLocalDoEvento = new Label();

            TableCell celulaDescricaoDoEvento = new TableCell();
            Label labelDescricaoDoEvento = new Label();

            TableCell celulaDataDoEvento = new TableCell();
            Label labelDataDoEvento = new Label();

            TableCell celulaOrganizadorDoEvento = new TableCell();
            Label labelOrganizadorDoEvento = new Label();

            TableCell celulaAcaoDoEvento = new TableCell();
            ImageButton imageButtonAceitarConvite = new ImageButton();
            ImageButton imageButtonRecusarConvite = new ImageButton();

            linhaDadosDoEvento.CssClass = "odd";

            labelNomeDoEvento.Text = evento.Titulo;
            celulaNomeDoEvento.Controls.Add(labelNomeDoEvento);
            linhaDadosDoEvento.Cells.Add(celulaNomeDoEvento);

            labelLocalDoEvento.Text = estabelecimento.NomeFantasia;
            celulaLocalDoEvento.Controls.Add(labelLocalDoEvento);
            linhaDadosDoEvento.Cells.Add(celulaLocalDoEvento);

            labelDescricaoDoEvento.Text = evento.Descricao;
            celulaDescricaoDoEvento.Controls.Add(labelDescricaoDoEvento);
            linhaDadosDoEvento.Cells.Add(celulaDescricaoDoEvento);

            labelDataDoEvento.Text = evento.DataHora.ToShortDateString();
            celulaDataDoEvento.Controls.Add(labelDataDoEvento);
            linhaDadosDoEvento.Cells.Add(celulaDataDoEvento);

            labelOrganizadorDoEvento.Text = organizador.Nome;
            celulaOrganizadorDoEvento.Controls.Add(labelOrganizadorDoEvento);
            linhaDadosDoEvento.Cells.Add(celulaOrganizadorDoEvento);

            imageButtonRecusarConvite.ImageUrl = "~/Imagens/IconeThumbsDown.png";
            imageButtonRecusarConvite.ToolTip = "Recusar convite.";
            //imageButtonRecusarConvite.OnClientClick = "confirm('Deseja recusar o convite?')";
            imageButtonRecusarConvite.PostBackUrl = "~/GUI/ClienteAceitarConviteEvento.aspx?RecusarEventoId="+evento.Id;
            celulaAcaoDoEvento.Controls.Add(imageButtonRecusarConvite);

            imageButtonAceitarConvite.ImageUrl = "~/Imagens/IconeThumbsUp.png";
            imageButtonAceitarConvite.ToolTip = "Aceitar convite.";
            //imageButtonAceitarConvite.OnClientClick = "confirm('Deseja aceitar o convite?')";
            imageButtonAceitarConvite.PostBackUrl = "~/GUI/ClienteAceitarConviteEvento.aspx?AceitarEventoId=" + evento.Id; ;
            celulaAcaoDoEvento.Controls.Add(imageButtonAceitarConvite);

            linhaDadosDoEvento.Cells.Add(celulaAcaoDoEvento);

            TabelaEvento.Rows.Add(linhaDadosDoEvento);

        }

        protected void ButtonAceitarConvite_Click(object sender, EventArgs e)
        {
            retornoWebServiceEventoAceitarConvite = webServiceEvento.ResponderConvite(cliente.ClienteId, true,evento.Id);
            if (retornoWebServiceEventoAceitarConvite.Sucesso == true)
            {
                Response.Redirect("HomeCliente.aspx?SucessoResponderEvento=1");
            }
            else
            {
                LabelAviso.Text = retornoWebServiceEventoAceitarConvite.Menssagem;
                LabelAviso.Visible = true;
            }

           
        }

        protected void ButtonRecusarConvite_Click(object sender, EventArgs e)

        {
            retornoWebServiceEventoAceitarConvite = webServiceEvento.ResponderConvite(cliente.ClienteId, false,evento.Id);
            if (retornoWebServiceEventoAceitarConvite.Sucesso == true)
            {
                Response.Redirect("HomeCliente.aspx?SucessoResponderEvento=2");
            }
            else
            {
                LabelAviso.Text = retornoWebServiceEventoAceitarConvite.Menssagem;
                LabelAviso.Visible = true;
            }

        }
    }
}